import 'dart:convert';

import './base_vm.dart';
import '../bean/requesterror_bean.dart';
import '../bean/userinfo_bean.dart';
import '../model/base_model.dart';
import '../utils/tools/localstorage_tool.dart';
import '../utils/widget/toast_widget.dart';
import '../utils/tools/errorhandle_tool.dart';

class UserInfoVM {
  /// ### 获取用户信息
  /// #### [context] |必填|上下文
  /// #### [title] String|选填|提示文案
  initUserInfo(context, {String title}) async {
    try {
      // 开启动画
      ToastWidget.loading(title: title);

      // 获取用户数据
      UserInfoBean res = await BaseModel.reqUserInfo();

      // 关闭动画
      ToastWidget.closeToast();

      // 将数据存入缓存
//      LocalStorage.setFormat("userdata", res);

      // 返回内容
      return res;
    } on RequestErrorBean catch (e) {
      // 请求失败、错误统一处理
      return errorHandle(context, e);
    }

    // 检测本地缓存中是否存有用户数据
//    String userDataStr = await LocalStorage.getFormat("userdata");
//
//    // 根据结果分流处理
//    if (userDataStr != null) {
//
//      return UserInfoBean.fromJson(json.decode(userDataStr));
//
//    } else {
//      // 开启动画
//      ToastWidget.loading(title: title);
//
//      try {
//        // 获取用户数据
//        UserInfoBean res = await BaseModel.reqUserInfo();
//
//        // 关闭动画
//        ToastWidget.closeToast();
//
//        // 将数据存入缓存
//        LocalStorage.setFormat("userdata", res);
//
//        // 返回内容
//        return res;
//
//      } on RequestErrorBean catch (e) {
//        // 请求失败、错误统一处理
//        return errorHandle(context, e);
//      }
//    }
  }

  /// ### 修改密码操作
  /// #### [context] 上下文
  /// #### [par] Map|必填|提交的参数
  /// #### [title] String|选填|提示文案
  getNewPwd(context, Map par, {String title = "正在修改..."}) async {
    // 开启加载动画
    ToastWidget.loading();

    try {
      // 请求用户数据
      Map res = await BaseModel.reqChangePwd(par);

      // 关闭动画
      ToastWidget.closeToast();

      //返回数据
      return res;
    } on RequestErrorBean catch (e) {
      // 请求失败、错误统一处理
      return errorHandle(context, e);
    }
  }
}
